<?php
/**
 * The View Template Engine
 * 为了实现规范和编码标准化，如果有用到smarty的函数，需要重写的就重写
 * 
 * @package view
 * @author Shuky
 * @since v1.0
 * @version $Id: View.php 8 2010-04-03 12:11:43Z shuky $
 */
namespace SFramework;

class View
{
    // 自身实例
    protected static $_instance = null;
    
    // View层托管变量
    protected $_variables = array();
    
    // 模板路径
    protected $_viewPath;
    
    
    /**
     * 单件模式，自身获取实例
     */
    public static function getInstance()
    {
		if (null === self::$_instance) {
			self::$_instance = new self();
		}
		return self::$_instance;
    }
    
    
    /**
     * 初始实例化模板引擎
     */
    public function __construct()
    {
    }
    
    
    /**
     * 设置viewPath
     */
    public function setViewPath($path)
    {
    	$this->_viewPath = $path;
    }
    
    
    /**
     * 调用显示模板
     * @param string $template
     */
    public function render($template)
    {
        ob_start();
    	include $this->_viewPath .'/'. $template;
    	$content = ob_get_contents();
    	ob_end_clean();
    	echo $content;
    }
    
    
    /**
     * 传入模板值
     */
    public function __set($key, $value)
    {
    	$this->_variables[$key] = $value;
    }
    
    
    /**
     * 获取模板值
     */
    public function __get($key)
    {
    	return isset($this->_variables[$key]) ? $this->_variables[$key] : null;
    }
}